package org.summer.lawyer.domain.vo.article;

import io.github.linpeilie.annotations.AutoMapper;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.summer.common.mybatis.core.domain.BaseEntitySearch;
import org.summer.lawyer.domain.Article;

import java.io.Serial;
import java.util.Date;

/**
 *
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = Article.class)
public class ArticleVo extends BaseEntitySearch {


    @Serial
    private static final long serialVersionUID = 2249652268950250435L;

    /**
     * 文章ID
     */
    private Long articleId;

    /**
     * 文章分类ID
     * （0最新，1每日普法，2司法判例，3古法研究院）
     */
    private String categoryId;

    /**
     * 文章分类
     * （0最新，1每日普法，2司法判例，3古法研究院）
     */
    private String categoryName;

    /**
     * 文章标题
     */
    private String title;

    /**
     * 文章封面图片
     */
    private String imageUrl;

    /**
     * 状态(0草稿, 1已发布）
     */
    private String status;

    /**
     * 文章内容
     */
    private String content;

    /**
     * 作者ID
     */
    private Long authorId;

    /**
     * 作者姓名
     */
    private String authorName;

    /**
     * 发布时间
     */
    private Date publishedTime;

    /**
     * 点赞数量
     */
    private Integer totalUpvote;

    /**
     * 浏览数量
     */
    private Integer totalView;

    /**
     * 是否置顶(0否，1置顶）
     */
    private String pinned;

    /**
     * 推荐首页（0不推荐，1推荐）
     */
    private String curated;

    /**
     * 创建者
     */
    private Long createBy;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新者
     */
    private Long updateBy;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 是否点赞（0否，1是）
     */
    @Schema(title = "upvote", type = "String", description = "是否点赞（0否，1是）")
    private String upvote;

    /**
     * 下一篇文章ID
     */
    private Long nextArticleId;

    /**
     * 下一篇文章标题
     */
    private String nextArticleTitle;

    /**
     * 点赞状态
     */
    private Integer upvoteStatus;
}
